#include<bits/stdc++.h>//P54
using namespace std;
const double eps=1e-6;
int n;
double a[15];
double f(double x){//计算函数值
    double s=0;
    for(int i=n;i>=0;i--)s=s*x+a[i];//注意函数求值的写法
    return s;
}
int main(){
    double L,R;scanf("%d%lf%lf",&n,&L,&R);
    for(int i=n;i>=0;i--)scanf("%lf",&a[i]);
    while(R-L>eps){
        double k=(R-L)/3.0;
        double mid1=L+k,mid2=R-k;//三分为L,mid1,mid2,R(从小到大)
        if(f(mid1)>f(mid2))R=mid2;//极值点一定在mid2的左侧,缩小区间为(L,mid2)
        else L=mid1;//极值点一定在mid1的右侧,缩小区间为(mid1,R)
    }
    printf("%.5f\n",L);
    return 0;
}